package com.platform.modules.sys.service;

import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.modules.sys.entity.SysOrgEntity;
import com.platform.modules.sys.entity.SysUserEntity;



/**
 * 组织机构Service接口
 *
 * @author 肖亮
 */
public interface SysOrgService extends IService<SysOrgEntity> {

	
	
	/**
	 * 标准 - queryOne
	 * @param params
	 * @return
	 */
	SysOrgEntity queryOne(Map<String, Object> params);
	
	
	/**
	 * 标准 - queryList
	 * @param params
	 * @return
	 */
	List<SysOrgEntity> queryList(Map<String, Object> params);
	
	
	
	/**
	 * 标准 - queryPage
	 * @param params
	 * @return
	 */
	IPage<SysOrgEntity> queryPage(Map<String, Object> params);
	
	/**
	 * 分页查询
	 *
	 * @param params
	 *            查询参数
	 * @return Page
	 */
	//Page queryPage(Map<String, Object> params);
	
	
	/**
	 * 查询所有列表
	 *
	 * @param params
	 *            查询参数
	 * @return List
	 */
	List<SysOrgEntity> queryAll(Map<String, Object> params);

	/**
	 * 新增实体
	 *
	 * @param sysOrg
	 *            实体
	 */
	void add(SysOrgEntity sysOrg);
	
	
	List<SysOrgEntity> queryOrgList(String userId);
	

	/**
	 * 根据主键更新实体
	 *
	 * @param sysOrg
	 *            实体
	 */
	void update(SysOrgEntity sysOrg);
	
	
	/**
	 * @descr 注册
	 * @param sysOrg
	 * @param user
	 * @param request
	 * @return
	 */
	public String addOrg(SysOrgEntity sysOrg,SysUserEntity user,HttpServletRequest request);

	
	public void sendEmailBoxAgain(String orgNo,String orgLinkMailbox);
	/**
	 * 根据主键删除
	 *
	 * @param orgNo
	 *            机构编码
	 */
	void delete(String orgNo);

	/**
	 * 根据主键批量删除
	 *
	 * @param orgNos
	 *            机构编码集
	 */
	void deleteBatch(String[] orgNos);

	/**
	 * 根据OrgNo查询子机构
	 *
	 * @param orgNo
	 *            机构编码
	 * @return List
	 */
	List<SysOrgEntity> queryListByOrgNo(String orgNo);

	
	
	
	
	
	
	//List<SysOrgEntity> randomAptitudeOrg(Map<String, Object> params,String orgNo,String decId,String prjId);
	
	
	List<SysOrgEntity> AptitudeOrg(Map<String, Object> params);
	
	List<String> AptitudeOrgNo ();
}
